#define _CRT_SECURE_NO_WARNINGS 1

#include "DList.h"

void DListTest1()
{
	DLSTNode* SenHead = InitDLSTNode();
	//DLSTPushFort(SenHead, 1);
	//DLSTPushFort(SenHead, 2);
	//DLSTPushFort(SenHead, 3);
	//DLSTPushFort(SenHead, 4);
	//DLSTNodePrintf(SenHead);
	DLSTPushBack(SenHead, 5);
	DLSTNodePrintf(SenHead);
	DLSTPushBack(SenHead, 6);
	DLSTNodePrintf(SenHead);
	DLSTPushBack(SenHead, 7);
	DLSTNodePrintf(SenHead);
	DLSTPushBack(SenHead, 8);
	DLSTNodePrintf(SenHead);

	DLSTPopBack(SenHead);
	DLSTNodePrintf(SenHead);
	DLSTPopBack(SenHead);
	DLSTNodePrintf(SenHead);
	DLSTPopBack(SenHead);
	DLSTNodePrintf(SenHead);
	DLSTPopBack(SenHead);
	DLSTNodePrintf(SenHead);


}

void DListTest2()
{
	DLSTNode* SenHead = InitDLSTNode();
	DLSTPushFort(SenHead, 1);
	DLSTPushFort(SenHead, 2);
	DLSTPushFort(SenHead, 3);
	DLSTPushFort(SenHead, 4);
	DLSTNodePrintf(SenHead);

	DLSTNode* p = DLSTNodeFind(SenHead, 1);
	DLSTInsertAfter(p, 10);
	DLSTNodePrintf(SenHead);

	p = DLSTNodeFind(SenHead, 10);
	DLSTInsertAfter(p, 10);
	DLSTNodePrintf(SenHead);

	DLSTInsertPre(p, 20);
	DLSTNodePrintf(SenHead);


	p = DLSTNodeFind(SenHead, 20);
	DLSTInsertAfter(p, 10);
	DLSTNodePrintf(SenHead);

}

void DListTest3()
{
	DLSTNode* SenHead = InitDLSTNode();
	DLSTPushFort(SenHead, 1);
	DLSTPushFort(SenHead, 2);
	DLSTPushFort(SenHead, 3);
	DLSTPushFort(SenHead, 4);
	DLSTNodePrintf(SenHead);

	DLSTNode* p = DLSTNodeFind(SenHead, 1);
	DLSTPopPos(p);
	DLSTNodePrintf(SenHead);


	p = DLSTNodeFind(SenHead, 2);
	DLSTPopPos(p);
	DLSTNodePrintf(SenHead);


	p = DLSTNodeFind(SenHead, 4);
	DLSTPopPos(p);
	DLSTNodePrintf(SenHead);

}

void DListTest4()
{
	DLSTNode* SenHead = InitDLSTNode();
	DLSTPushFort(SenHead, 1);
	DLSTNodePrintf(SenHead);
	DLSTPushFort(SenHead, 2);
	DLSTNodePrintf(SenHead);
	DLSTPushFort(SenHead, 3);
	DLSTNodePrintf(SenHead);
	DLSTPushFort(SenHead, 4);
	DLSTNodePrintf(SenHead);

	DLSTPopFort(SenHead);
	DLSTNodePrintf(SenHead);
	DLSTPopFort(SenHead);
	DLSTNodePrintf(SenHead);
	DLSTPopFort(SenHead);
	DLSTNodePrintf(SenHead);
	DLSTPopFort(SenHead);
	DLSTNodePrintf(SenHead);
	//DLSTPopFort(SenHead);
	//DLSTNodePrintf(SenHead);


}


void DListTest5()
{
	DLSTNode* SenHead = InitDLSTNode();
	DLSTPushFort(SenHead, 1);
	DLSTPushFort(SenHead, 2);
	DLSTPushFort(SenHead, 3);
	DLSTPushFort(SenHead, 4);
	DLSTNodePrintf(SenHead);

	DLSTPopBack(SenHead);
	DLSTNodePrintf(SenHead);
	DLSTPopBack(SenHead);
	DLSTNodePrintf(SenHead);
	DLSTPopBack(SenHead);
	DLSTNodePrintf(SenHead);
	DLSTPopBack(SenHead);
	DLSTNodePrintf(SenHead);

	//DLSTPopBack(SenHead);
	//DLSTNodePrintf(SenHead);


}


void DListTest6()
{
	DLSTNode* SenHead = InitDLSTNode();
	DLSTPushFort(SenHead, 1);
	DLSTPushFort(SenHead, 2);
	DLSTPushFort(SenHead, 3);
	DLSTPushFort(SenHead, 4);
	DLSTNodePrintf(SenHead);

	DSTLNodeDestory(SenHead);
}


int main()
{


	DListTest1();

	return 0;
}


